package com.funcablaze.component.view;

import com.funcablaze.component.control.Graphic;
import com.funcablaze.component.control.Theme;
import com.funcablaze.window.Frame;

public abstract class Component {
	protected float x, y;
	protected float width, height;
	protected Theme.StyleStruct styleStruct;
	
	/**
	 * 绘制组件
	 */
	public abstract void _draw(Graphic graphic, Theme.ThemeType theme);
	
	/**
	 * 检查点 （px， py） 是否包含在此组件中
	 * @param px x坐标
	 * @param py y坐标
	 * @return 包含在此组件内
	 */
	public boolean contains(float px, float py) {
		return px >= x && px <= x + width && py >= y && py <= y + height;
	}
	
	/**
	 * 设置宽度
	 * @param width 宽度
	 */
	public void setWidth(float width) {
		this.width = width;
	}
	
	/**
	 * 设置高度
	 * @param height 高度
	 */
	public void setHeight(float height) {
		this.height = height;
	}
	
	/**
	 * 设置x坐标
	 * @param x x坐标
	 */
	public void setX(float x) {
		this.x = x;
	}
	
	/**
	 * 设置y坐标
	 * @param y y坐标
	 */
	public void setY(float y) {
		this.y = y;
	}
}
